import { DialogForm } from 'custom/index'
import { addConsultationRecords, getZxjlByZxId, addGjjl } from '../api'
import YwdjrSelect from '../components/YwdjrSelect.vue'
import File from '../components/File.vue'

const addDialog = new DialogForm('DialogForm')
const editDialog = new DialogForm('DialogForm')
const gjjlDialog = new DialogForm('DialogForm')
const addGjjlDialog = new DialogForm('DialogForm')
const editGjjlDialog = new DialogForm('DialogForm')

addDialog
    .width('80%')
    .postApi(addConsultationRecords)
    // 基础信息组
    // 第一行
    .useGroup('基础信息')
    .useDictSelect('zxkhlxVal', 'marketType').label('咨询客户类型').required().setProp('widthLabel', 'zxkhlxName').span(6).end()
    .useDictSelect('zxtkqdVal', 'expandType').label('咨询拓客渠道').required().setProp('widthLabel', 'zxtkqdName').span(6).end()
    .useItem('zxkhmc').label('咨询客户名称').required().span(6).end()
    .useDictSelect('khyxxVal', 'khyxx').label('客户有效性').required().setProp('widthLabel', 'khyxxName').span(6).end()
    // 第二行
    .useDictSelect('zxdpptVal', 'platform').label('咨询店铺平台').setProp('widthLabel', 'zxdpptName').span(6).end()
    .useItem('zxdpmc').label('咨询店铺名称').span(6).end()
    .useDictSelect('zxdplmVal', 'shopType').label('咨询店铺类目').setProp('widthLabel', 'zxdplmName').span(6).end()
    .useDictSelect('zxdpdjVal', 'difficultyGrade').label('咨询店铺等级').setProp('widthLabel', 'zxdpdjName').span(6).end()
    // 第三行
    .useDictSelect('zxywtxVal', 'zxywtx').label('咨询业务条线').setProp('widthLabel', 'zxywtxName').span(6).end()
    .useDictSelect('zxywlxVal', 'zxywlx').label('咨询业务类型').setProp('widthLabel', 'zxywlxName').span(6).end()
    .useDictSelect('zxfwbcVal', 'serviceShift').label('咨询服务班次').setProp('widthLabel', 'zxfwbcName').span(6).end()
    .useDictSelect('zxsfmsVal', 'sfms').label('咨询收费模式').setProp('widthLabel', 'zxsfmsName').span(6).end()
    // 第四行
    .useDictSelect('sfbjVal', 'sfbj').label('是否报价').setProp('widthLabel', 'sfbjName').span(6).end()
    .useItem1('bjje').label('报价金额').span(6).end()
    .useItem('zxlxr').label('咨询联系人').span(6).end()
    .useItem3('lxrsjh').label('联系人手机号').span(6).end()
    // 第五行
    .useDatePicker('zxrq').label('咨询日期').required().span(6).end()
    .useCustomItem(YwdjrSelect, 'gsdjrUserId').required().label('公司对接人').span(6).end()
    .useDictSelect('dqjdVal', 'dqjd').label('当前节点').required().setProp('widthLabel', 'dqjdName').span(6).end()

    .useDictSelect('gjfsVal', 'zxgjfs').label('跟进方式').required().setProp('widthLabel', 'gjfsName').span(6).end()
    .useDatePicker('xcgjsj').label('下次跟进日期').span(6).end()
    // 第六行
    .useItem('qtlxfs').label('其它联系方式').span(6).end()
    .useRate('zycd').label('重要程度').span(6).end()
    // 第七行
    .upto('DialogForm')
    .useGroup('其他信息')
    // 第一行
    .useCityPicker('zxdpcs').label('咨询店铺城市').span(6).end()
    .useDictSelect('zxdpkdVal', 'dpkd').label('咨询店铺客单').setProp('widthLabel', 'zxdpkdName').span(6).end()
    .useDictSelect('zxdpxlVal', 'dpxl').label('咨询店铺销量').setProp('widthLabel', 'zxdpxlName').span(6).end()
    .useDictSelect('zxdpflVal', 'dpdj').label('咨询店铺分类').setProp('widthLabel', 'zxdpflName').span(6).end()
    // 第二行
    .useItem1('zxl').label('咨询量(日均)').span(6).end()
    .useItem1('zhl').label('转化率(%)').span(6).end()
    .useItem1('pjxy').label('平均响应').span(6).end()
    .useItem1('myd').label('满意度(%)').span(6).end()
    // 第三行
    .useItem1('tksc').label('退款时长').span(6).end()
    .upto('DialogForm')
    .useGroup('附件')
    .useCustomItem(File, 'fileIds').span(6).end()

editDialog
    .width('80%')
    .getApi(async (_, row) => {
        return row;
    })
    .postApi(addConsultationRecords)
    // 基础信息组
    // 第一行
    .useGroup('基础信息')
    .useDictSelect('zxkhlxVal', 'marketType').label('咨询客户类型').required().setProp('widthLabel', 'zxkhlxName').span(6).end()
    .useDictSelect('zxtkqdVal', 'expandType').label('咨询拓客渠道').required().setProp('widthLabel', 'zxtkqdName').span(6).end()
    .useItem('zxkhmc').label('咨询客户名称').required().span(6).end()
    .useDictSelect('khyxxVal', 'khyxx').label('客户有效性').required().setProp('widthLabel', 'khyxxName').span(6).end()
    // 第二行
    .useDictSelect('zxdpptVal', 'platform').label('咨询店铺平台').setProp('widthLabel', 'zxdpptName').span(6).end()
    .useItem('zxdpmc').label('咨询店铺名称').span(6).end()
    .useDictSelect('zxdplmVal', 'shopType').label('咨询店铺类目').setProp('widthLabel', 'zxdplmName').span(6).end()
    .useDictSelect('zxdpdjVal', 'difficultyGrade').label('咨询店铺等级').setProp('widthLabel', 'zxdpdjName').span(6).end()
    // 第三行
    .useDictSelect('zxywtxVal', 'zxywtx').label('咨询业务条线').setProp('widthLabel', 'zxywtxName').span(6).end()
    .useDictSelect('zxywlxVal', 'zxywlx').label('咨询业务类型').setProp('widthLabel', 'zxywlxName').span(6).end()
    .useDictSelect('zxfwbcVal', 'serviceShift').label('咨询服务班次').setProp('widthLabel', 'zxfwbcName').span(6).end()
    .useDictSelect('zxsfmsVal', 'sfms').label('咨询收费模式').setProp('widthLabel', 'zxsfmsName').span(6).end()
    // 第四行
    .useDictSelect('sfbjVal', 'sfbj').label('是否报价').setProp('widthLabel', 'sfbjName').span(6).end()
    .useItem1('bjje').label('报价金额').span(6).end()
    .useItem('zxlxr').label('咨询联系人').span(6).end()
    .useItem3('lxrsjh').label('联系人手机号').span(6).end()
    // 第五行
    .useDatePicker('zxrq').label('咨询日期').required().span(6).end()
    .useCustomItem(YwdjrSelect, 'gsdjrUserId').required().label('公司对接人').span(6).end()
    .useDictSelect('dqjdVal', 'dqjd').label('当前节点').required().setProp('widthLabel', 'dqjdName').span(6).end()
    // 第六行
    .useItem('qtlxfs').label('其它联系方式').span(6).end()
    .useRate('zycd').label('重要程度').span(6).end()
    // 第七行
    .upto('DialogForm')
    .useGroup('其他信息')
    // 第一行
    .useCityPicker('zxdpcs').label('咨询店铺城市').span(6).end()
    .useDictSelect('zxdpkdVal', 'dpkd').label('咨询店铺客单').setProp('widthLabel', 'zxdpkdName').span(6).end()
    .useDictSelect('zxdpxlVal', 'dpxl').label('咨询店铺销量').setProp('widthLabel', 'zxdpxlName').span(6).end()
    .useDictSelect('zxdpflVal', 'dpdj').label('咨询店铺分类').setProp('widthLabel', 'zxdpflName').span(6).end()
    // 第二行
    .useItem1('zxl').label('咨询量(日均)').span(6).end()
    .useItem1('zhl').label('转化率(%)').span(6).end()
    .useItem1('pjxy').label('平均响应').span(6).end()
    .useItem1('myd').label('满意度(%)').span(6).end()
    // 第三行
    .useItem1('tksc').label('退款时长').span(6).end()

gjjlDialog.width('80%')
    .getApi(async (_, row) => {
        if (!row.isAdd) {
            return row;
        } else {
            // 根据咨询记录ID取咨询记录
            let res = await getZxjlByZxId(row);
            return res;
        }
    })
    .postApi(addGjjl)
    // 基础信息组
    // 第一行
    .useGroup('基础信息')
    .useDictSelect('zxkhlxVal', 'marketType').label('咨询客户类型').setProp('disabled', true).setProp('widthLabel', 'zxkhlxName').span(6).end()
    .useDictSelect('zxtkqdVal', 'expandType').label('咨询拓客渠道').setProp('disabled', true).setProp('widthLabel', 'zxtkqdName').span(6).end()
    .useItem('zxkhmc').label('咨询客户名称').setProp('disabled', true).span(6).end()
    .useDictSelect('khyxxVal', 'khyxx').label('客户有效性').required().setProp('widthLabel', 'khyxxName').span(6).end()
    // 第二行
    .useDictSelect('zxdpptVal', 'platform').label('咨询店铺平台').setProp('widthLabel', 'zxdpptName').span(6).end()
    .useItem('zxdpmc').label('咨询店铺名称').span(6).end()
    .useDictSelect('zxdplmVal', 'shopType').label('咨询店铺类目').setProp('widthLabel', 'zxdplmName').span(6).end()
    .useDictSelect('zxdpdjVal', 'difficultyGrade').label('咨询店铺等级').setProp('widthLabel', 'zxdpdjName').span(6).end()
    // 第三行
    .useDictSelect('zxywtxVal', 'zxywtx').label('咨询业务条线').setProp('widthLabel', 'zxywtxName').span(6).end()
    .useDictSelect('zxywlxVal', 'zxywlx').label('咨询业务类型').setProp('widthLabel', 'zxywlxName').span(6).end()
    .useDictSelect('zxfwbcVal', 'serviceShift').label('咨询服务班次').setProp('widthLabel', 'zxfwbcName').span(6).end()
    .useDictSelect('zxsfmsVal', 'sfms').label('咨询收费模式').setProp('widthLabel', 'zxsfmsName').span(6).end()
    // 第四行
    .useDictSelect('sfbjVal', 'sfbj').label('是否报价').setProp('widthLabel', 'sfbjName').span(6).end()
    .useItem1('bjje').label('报价金额').span(6).end()
    .useItem('zxlxr').label('咨询联系人').span(6).end()
    .useItem3('lxrsjh').label('联系人手机号').span(6).end()
    // 第五行
    .useDatePicker('zxrq').label('咨询日期').setProp('disabled', true).required().span(6).end()
    .useCustomItem(YwdjrSelect, 'gsdjrUserId').setProp('disabled', true).required().label('公司对接人').span(6).end()
    .useDictSelect('dqjdVal', 'dqjd').label('当前节点').required().setProp('widthLabel', 'dqjdName').span(6).end()

    .useDatePicker('gjsj').label('跟进日期').required().span(6).end()
    // 第六行
    .useDictSelect('gjfsVal', 'zxgjfs').label('跟进方式').required().setProp('widthLabel', 'gjfsName').span(6).end()
    .useItem('qtlxfs').label('其它联系方式').span(6).end()
    .useRate('zycd').label('重要程度').span(6).end()
    // 第七行
    .useItem2('bjmxjqt').label('报价明细及其他').span(24).end()
    .upto('DialogForm')
    .useGroup('其他信息')
    // 第一行
    .useCityPicker('zxdpcs').label('咨询店铺城市').span(6).end()
    .useDictSelect('zxdpkdVal', 'dpkd').label('咨询店铺客单').setProp('widthLabel', 'zxdpkdName').span(6).end()
    .useDictSelect('zxdpxlVal', 'dpxl').label('咨询店铺销量').setProp('widthLabel', 'zxdpxlName').span(6).end()
    .useDictSelect('zxdpflVal', 'dpdj').label('咨询店铺分类').setProp('widthLabel', 'zxdpflName').span(6).end()
    // 第二行
    .useItem1('zxl').label('咨询量(日均)').span(6).end()
    .useItem1('zhl').label('转化率(%)').span(6).end()
    .useItem1('pjxy').label('平均响应').span(6).end()
    .useItem1('myd').label('满意度(%)').span(6).end()
    // 第三行
    .useItem1('tksc').label('退款时长').span(6).end()

addGjjlDialog.width('30%')
    .getApi(async (_, row) => {
        return row;
    })
    .postApi(addGjjl)
    .useGroup('基础信息')
    .useItem('zxkhmc').label('咨询客户名称').setProp('disabled', true).span(24).end()
    .useDictSelect('dqjdVal', 'dqjd').label('当前节点').required().setProp('widthLabel', 'dqjdName').span(24).end()
    .useDictSelect('gjfsVal', 'zxgjfs').label('跟进方式').required().setProp('widthLabel', 'gjfsName').span(24).end()
    .useDatePicker('gjsj').label('跟进日期').required().span(24).end()
    .useDatePicker('xcgjsj').label('下次跟进日期').span(24).end()
    .useItem2('bjmxjqt').label('报价明细及其他').span(24).end()
    .useCustomItem(File, 'fileIds').span(24).end()

editGjjlDialog.width('30%')
    .getApi(async (_, row) => {
        return row;
    })
    .postApi(addGjjl)
    .useGroup('基础信息')
    .useItem('zxkhmc').label('咨询客户名称').setProp('disabled', true).span(24).end()
    .useDictSelect('dqjdVal', 'dqjd').label('当前节点').required().setProp('widthLabel', 'dqjdName').span(24).end()
    .useDictSelect('gjfsVal', 'zxgjfs').label('跟进方式').required().setProp('widthLabel', 'gjfsName').span(24).end()
    .useDatePicker('gjsj').label('跟进日期').required().span(24).end()
    .useDatePicker('xcgjsj').label('下次跟进日期').span(24).end()
    .useItem2('bjmxjqt').label('报价明细及其他').span(24).end()

export { addDialog, editDialog, gjjlDialog, addGjjlDialog, editGjjlDialog }